public class Solution {
    // you need treat n as an unsigned value
    public int reverseBits(int n) {
        int res = 0;   // 反转结果，初始为0表示所有位都为0
        // 循环处理32位，idx为位索引
        for (int idx = 0; idx < 32; idx++) {
            int digit = n & 1;  // 获取当前最低位
            n >>= 1;            // 将最低位右移掉
            res |= (digit << (31 - idx)); // 将这个最低位反转到它实际位置上去
        }
        return res;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();

        // 定义一个具体的输入值
        int n = 43261596; // 示例输入，你可以修改为其他值
        System.out.println("Original value: " + n);
        System.out.println("Reversed value: " + solution.reverseBits(n));
    }
}